﻿using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.Data.OleDb;

namespace DiaryPlanner
{
    public partial class AlbumFolder : PictureBox
    {
        public ContextMenu folderMenu = new ContextMenu();
        public Album thisAlbumObject;
        public String folderName;//보여지는 폴더 이름
        public String realName;//진짜 폴더 이름

        public ArrayList PhotoList = new ArrayList(); //폴더 안의 사진들의 리스트

        public AlbumFolder(Album ab)
        {
            thisAlbumObject = ab;
            folderMenu.MenuItems.Add("삭제", deleteFolder);
            InitializeComponent();
            
        }

        private void folderPictureBox_Click(object sender, EventArgs e)//폴더 이미지 클릭
        {
            //nowFolder와 이 폴더가 같다면 아무 일도 하지 않음
            if (thisAlbumObject.nowFolder == this) return;


            thisAlbumObject.nowFolder = this; // Album의 nowFolder(현재 폴더)는 이 폴더로 지정
                        
            //오른쪽 photoPanel에 photoList에 있는 사진들 뿌려주기
            thisAlbumObject.viewAllPhoto();
            
        }

        public void deleteFolder(object sender, EventArgs e)
        {
            //폴더와 사진들을 db에서 삭제                 
            String fname = thisAlbumObject.nowFolder.realName;            
            foreach(AlbumPhoto ap in thisAlbumObject.nowFolder.PhotoList){
                ap.Image = null;
                ap.Dispose();
            }
            thisAlbumObject.nowFolder.PhotoList.Clear();
            thisAlbumObject.FolderList.Remove(thisAlbumObject.nowFolder);

            thisAlbumObject.nowFolder = null;
             
            thisAlbumObject.viewAllFolder();
            thisAlbumObject.viewAllPhoto();


            try
            {
                Directory.Delete("./Album/" + fname, true);
            }
            catch
            {

            }

            
             

        }

        private void folderPictureBox_MouseDown(object sender, MouseEventArgs e)
        {
            //mouse down 왼쪽 이벤트는 처리하지 않음
            if ((e.Button & MouseButtons.Left) == MouseButtons.Left) return;

            //오른쪽 마우스 down 이벤트만 처리


            ////만일 이 폴더가 nowFolder라면, photoPanel의 내용을 없앤다
            //if(thisAlbumObject.nowFolder==this){

            //    thisAlbumObject.photoPanel.Controls.Clear();

            //}

            //이 폴더 삭제 메뉴
            if (thisAlbumObject.nowFolder != this)
            {
                thisAlbumObject.nowFolder = this;
                thisAlbumObject.viewAllPhoto();
            }
            Point m = this.PointToClient(new Point(Control.MousePosition.X, Control.MousePosition.Y));
            folderMenu.Show(this, m);
         

        }

        

    }
}
